#pragma once

#define print(...)                                                             \
  {}

#define ASSERT(x)                                                              \
  {}

#ifndef NULL
#define NULL ((PVOID)0)
#endif
#define TRUE ((BOOLEAN)1)
#define FALSE ((BOOLEAN)0)

#define CONST const
#define INLINE inline
#define STATIC static
#define VOLATILE volatile

typedef signed char INT8;
typedef signed short int INT16;
typedef signed int INT32;
__extension__ typedef signed long long int INT64;

typedef unsigned char UINT8;
typedef unsigned short int UINT16;
typedef unsigned int UINT32;
__extension__ typedef unsigned long long int UINT64;

typedef UINT32 WORD;
typedef INT32 SWORD;
typedef WORD SIZE;
__extension__ typedef INT64 INTMAX;
__extension__ typedef UINT64 UINTMAX;
typedef WORD PTRDIFF;
typedef WORD UINTPTR;
typedef WORD INTPTR;

typedef INT8 BOOLEAN;
typedef char CHAR;
typedef short SHORT;
typedef int INT;
typedef long LONG;
typedef long long LLONG;
typedef void VOID;
typedef unsigned char UCHAR;
typedef unsigned short USHORT;
typedef unsigned int UINT;
typedef unsigned long ULONG;
typedef unsigned long long ULLONG;

typedef CHAR *PCHAR;
typedef UCHAR *PUCHAR;
typedef VOID *PVOID;
typedef WORD *PWORD;
typedef SWORD *PSWORD;
typedef SIZE *PSIZE;

typedef CONST CHAR *PCCHAR;
typedef CONST UCHAR *PCUCHAR;
typedef CONST VOID *PCVOID;
typedef CONST WORD *PCWORD;
typedef CONST SWORD *PCSWORD;
typedef CONST SIZE *PCSIZE;

typedef WORD N1_STATUS;

void *memcpy(void *dest, const void *src, UINT32 n);
void *memset(void *dst, int c, UINT32 n);
SIZE strlen(const char *str);